<?php
namespace Admin\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function index(){
      echo"this is admin model";
    }
    public function _initialize(){
        if(!session('?admin')){
            $this->error('当前用户没有权限','Login/login');
            exit;
        }
    }

    function UserList(){
        $userModel=M('Users');
        $local_users=$userModel->order('id desc')->select();
        //select * from think_users order by id desc
        //$users是函数中的局部变量，在外面是不可见的
        $this->users=$local_users;
        $this->display();//把当前对象所有全局变量传递到对应视图中
        //可以使用assign方法限制传递的全局变量
    }
    function bsUserList()
    {
//        $userModel = M('Users');
//        $local_users = $userModel->order('id desc')->select();
//        //select * from think_users order by id desc
//        //$users是函数中的局部变量，在外面是不可见的
//        $this->users = $local_users;
//        $this->display();//把当前对象所有全局变量传递到对应视图中
//        //可以使用assign方法限制传递的全局变量
        $User = M('Users'); // 实例化User对象
        $count = $User->count();// 查询满足要求的总记录数
        $Page = new \Think\Page($count,5);// 实例化分页类 传入总记录数和每页显示的记录数(5)
        $show = $Page->show();// 分页显示输出
        // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
        $list = $User->limit($Page->firstRow.','.$Page->listRows)->select();
        $this->assign('users',$list);// 赋值数据集
        $this->assign('page',$show);// 赋值分页输出
        $this->display(); // 输出模板
    }
    function users()
    {
        $userModel = M('Users');
        $local_users = $userModel->order('id desc')->select();
        //select * from think_users order by id desc;
        //$users是函数中的局部变量，在外面是不可见的
        $this->users = $local_users;
        $this->display();//把当前对象所有全局变量传递到对应视图中
        //可以使用assign方法限制传递的全局变量
    }
    function del($id){
        //生成一个Users模型实例
        $usersModel=M('Users');
        //调用模型的方法删除数据
        if($usersModel->delete($id)){
            //delete * from think_users where id=$id;
            //删除成功
            $this->success('删除成功');
        }else{
            //删除失败
            $this->error('删除失败');
        }
    }
    function setstar($id){
        //生成一个Users表对应的模型实例users
        $usersModel=M('Users');
        $data['isstar']=1;
        if($usersModel->where("id=$id")->save($data)){
            //update users set isstar=1 where id=$id;
            $this->success('设置明星作者成功！');
        }else{
            $this->error('设置明星作者失败!');
        }
    }
    function unstar($id){
        $usersModel=M('Users');
        $usersModel->isstar=0;
        $usersModel->isfirst=0;
        $usersModel->id=$id;
        if($usersModel->save()){
            $this->success('取消明星作者成功！');
        }else{
            $this->error('取消明星作者失败！');
        }
    }
    function setfirst($id){
        //生成一个Users表对应的模型实例users
        $usersModel=M('Users');
        $usersModel->isstar=1;
        $usersModel->isfirst=1;
        $usersModel->id=$id;
        if($usersModel->save()){
            $this->success('设置首页推荐成功！');
        }else{
            $this->error('设置首页推荐失败!');
        }
    }
    function unfirst($id){
        $usersModel=M('Users');
        $usersModel->isstar=0;
        $usersModel->isfirst=0;
        $usersModel->id=$id;
        if($usersModel->save()){
            $this->success('取消首页推荐成功！');
        }else{
            $this->error('取消首页推荐失败！');
        }
    }
    function updateUserInfo($id){
        $usersModel=M('Users');
        $this->user=$usersModel->find($id);
        $this->display();
        //将查询到的用户信息user传递给模板updateUserInfo.html

    }
    function update(){
        //获取updateUserInfo界面提交过来的数据，修改数据库
        //$data=$_POST
        // $data=I(post.)
        //create() 利用$_POST数组创建一个对象
        $userModel=D('Users');
        $userModel->create();
        if($_FILES['photo']['error']==0){
            $photoinfo=$this->upload();
            $userModel->photo=$photoinfo['photo']['savename'];
        }
        if($userModel->save()){
            $this->success('修改用户成功！','users');

        }else{
            $this->error('修改用户失败！');
        }
    }
    public function upload(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 3145728 ;// 设置附件上传大小
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = './Public/Uploads/photo/'; // 设置附件上传根目录
        //$upload->savePath = ''; // 设置附件上传（子）目录
        $upload->autoSub=false;
// 上传文件
        $info = $upload->upload();
        if(!$info) {// 上传错误提示错误信息
            $this->error($upload->getError());
        }else{// 上传成功
           return $info;
        }
    }

    function img(){
            $photoinfo = $this->upload();
            $filePath='./Public/Uploads/photo/';
            $oldFileName=$photoinfo['photo']['savename'];
            $oldFileFullName=$filePath."\\".$oldFileName;
            $newFileName='thumb_'.$oldFileName;
            $newFileFullName=$filePath."\\".$newFileName;
            $image=new \Think\Image();
            $image->open($oldFileFullName);
            $image->thumb(100,100)->save($newFileFullName);
            return $newFileName;
        }

    public function addUser(){
        //1.获取add.html界面提交过来的数据，修改数据库
        //$data=$_POST
        // $data=I(post.)
        //create() 利用$_POST数组创建一个对象
        //2.单独处理图像的上传以及photo字段的赋值
        //3.保存到数据库 add()
        $userModel=D('Users');//采用D方法才会自动验证
        if($userModel->create()){
            if($_FILES['photo']['error']==0){//判断文件上传是否成功
                $fileName=$this->img();
                $userModel->photo=$fileName;//获取并设置文件名称
            }
            if($userModel->add()){
                $this->success('添加用户信息成功！','users');

            }else{
                $this->error('添加用户信息失败！');
            }
        }else{
            $this->error($userModel->getError());//验证错误原因
        }
    }


    function VideoList(){
        $videoModel=M('Videos');
        $local_videos=$videoModel->order('vid desc')->select();
        //select * from think_users order by id desc
        //$users是函数中的局部变量，在外面是不可见的
        $this->videos=$local_videos;
        $this->display();//把当前对象所有全局变量传递到对应视图中
        //可以使用assign方法限制传递的全局变量
    }
    function bsVideoList()
    {
        $videoModel = M('Videos');
        $local_videos = $videoModel->order('vid desc')->select();
        //select * from think_users order by id desc
        //$users是函数中的局部变量，在外面是不可见的
        $this->videos = $local_videos;
        $this->display();//把当前对象所有全局变量传递到对应视图中
        //可以使用assign方法限制传递的全局变量
    }
    function videos()
    {
        $videoModel = M('Videos');
        $local_videos = $videoModel->order('vid desc')->select();
        //select * from think_users order by id desc;
        //$users是函数中的局部变量，在外面是不可见的
        $this->videos = $local_videos;
        $this->display();//把当前对象所有全局变量传递到对应视图中
        //可以使用assign方法限制传递的全局变量
    }
    function del1($vid){
        //生成一个Users模型实例
        $videoModel=M('Videos');
        //调用模型的方法删除数据
        if($videoModel->delete($vid)){
            //delete * from think_users where id=$id;
            //删除成功
            $this->success('删除成功');
        }else{
            //删除失败
            $this->error('删除失败');
        }
    }
    function setfirst1($vid){
        //生成一个Users表对应的模型实例users
        $videosModel=M('Videos');
        $videosModel->isfirst=1;
        $videosModel->vid=$vid;
        if($videosModel->save()){
            $this->success('设置视频推荐成功！');
        }else{
            $this->error('设置视频推荐失败!');
        }
    }
    function unfirst1($vid){
        $videosModel=M('Videos');
        $videosModel->isfirst=0;
        $videosModel->vid=$vid;
        if($videosModel->save()){
            $this->success('取消视频推荐成功！');
        }else{
            $this->error('取消视频推荐失败！');
        }
    }
    function updateVideoInfo($vid){
        $videosModel=M('Videos');
        $this->video=$videosModel->find($vid);
        $this->display();
        //将查询到的用户信息user传递给模板updateUserInfo.html

    }
    function update1(){
        //获取updateUserInfo界面提交过来的数据，修改数据库
        //$data=$_POST
        // $data=I(post.)
        //create() 利用$_POST数组创建一个对象
        $videoModel=M('Videos');
        $videoModel->create();
        if($_FILES['photo']['error']==0){
            $photoinfo=$this->upload();
            $videoModel->photo=$photoinfo['photo']['savename'];
        }
        if($videoModel->save()){
            $this->success('修改视频成功！','videos');

        }else{
            $this->error('修改视频失败！');
        }
    }
    public function upload1(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 3145728 ;// 设置附件上传大小
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = './Public/Uploads/photo/'; // 设置附件上传根目录
        //$upload->savePath = ''; // 设置附件上传（子）目录
        $upload->autoSub=false;
// 上传文件
        $info = $upload->upload1();
        if(!$info) {// 上传错误提示错误信息
            $this->error($upload->getError());
        }else{// 上传成功
            return $info;
        }
    }

    function img1(){
        $photoinfo = $this->upload1();
        $filePath='./Public/Uploads/photo/';
        $oldFileName=$photoinfo['photo']['savename'];
        $oldFileFullName=$filePath."\\".$oldFileName;
        $newFileName='thumb_'.$oldFileName;
        $newFileFullName=$filePath."\\".$newFileName;
        $image=new \Think\Image();
        $image->open($oldFileFullName);
        $image->thumb(100,100)->save($newFileFullName);
        return $newFileName;
    }

    public function addVideoInfo(){
        //1.获取add.html界面提交过来的数据，修改数据库
        //$data=$_POST
        // $data=I(post.)
        //create() 利用$_POST数组创建一个对象
        //2.单独处理图像的上传以及photo字段的赋值
        //3.保存到数据库 add()
        $videoModel=M('Videos');//采用D方法才会自动验证
        if($videoModel->create()){
            if($_FILES['photo']['error']==0){//判断文件上传是否成功
                $fileName=$this->img();
                $videoModel->photo=$fileName;//获取并设置文件名称
            }
            if($videoModel->add()){
                $this->success('添加视频信息成功！','videos');

            }else{
                $this->error('添加视频信息失败！');
            }
        }else{
            $this->error($videoModel->getError());//验证错误原因
        }
    }

}